עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

Σχετικά έγγραφα
מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

ל הזכויות שמורות לדפנה וסטרייך

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

מבני נתונים (234218) 1

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

מבני נתונים ויעילות אלגוריתמים

מבני נתונים עצים שיעור 7

Nir Adar גירסה 1.00 עמוד 1

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

השאלות ידי מצביעים לילדים.

Trie מאפשר חיפוש, הכנסה, הוצאה, ומציאת מינימום (לקסיקוגרפי) של מחרוזות.

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

תרגול פעולות מומצאות 3

Nir Adar

תרגול מס' 6 פתרון מערכת משוואות ליניארית

שאלה 1 V AB פתרון AB 30 R3 20 R

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

חורף תש''ע פתרון בחינה סופית מועד א'

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

מתמטיקה בדידה תרגול מס' 13

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

Logic and Set Theory for Comp. Sci.

מבני נתונים ויעילות אלגוריתמים

סדרות - תרגילים הכנה לבגרות 5 יח"ל

סיכום- בעיות מינימוםמקסימום - שאלון 806

תרגיל 13 משפטי רול ולגראנז הערות

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

תורת הגרפים - סימונים

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

Hash Tables (המשך) ערבול (Hashing)

אלגוריתמים בתורת הגרפים חלק שני

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

gcd 24,15 = 3 3 =

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

םינותנ ינבמ (הנכות ידימלתל)

מתמטיקה בדידה תרגול מס' 5

תרגיל 7 פונקציות טריגונומטריות הערות

השאלות..h(k) = k mod m

1 סכום ישר של תת מרחבים

x a x n D f (iii) x n a ,Cauchy

גבול ורציפות של פונקציה סקלרית שאלות נוספות

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

אלגוריתמים / תרגיל #1

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

אלגברה מודרנית פתרון שיעורי בית 6

אסימפטוטיים תוכנית הקורס עצי AVL עצי 2-3 עצי דרגות סיבוכיות משוערכת מיון מיון שימושים: גרפים איסוף אשפה

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

מסדי נתונים רלציונים התצפית של כל משתמש על פי היישום ייצוג הנתונים על פי המודל כטבלאות שמירה בפועל על הדיסק

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

אינפי - 1 תרגול בינואר 2012

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

logn) = nlog. log(2n

תורת הקבוצות תרגיל בית 2 פתרונות

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

רשימת משפטים והגדרות

שיטות אנליזה לניתוח זמנים משוערך Amortized Time Analysis

. {e M: x e} מתקיים = 1 x X Y

בסל A רמת התועלת היא: ) - השקה: שיפוע קו תקציב=שיפוע עקומת אדישות. P x P y. U y P y A: 10>6 B: 9>7 A: 5>3 B: 4>3 C: 3=3 C: 8=8 תנאי שני : מגבלת התקציב

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

אלגוריתמים בתורת הגרפים חלק ראשון

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

אלגוריתמים 1, סמסטר אביב 2017

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

אוניברסיטת בר אילן מבני נתונים תרגולים מרצה: פרופ' שמואל טומי קליין סמסטר ב', תש"ע

מתמטיקה בדידה תרגול מס' 12

Transcript:

עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא נוספת לעצים מאוזנים. הגדרה: עץ 3- הוא עץ בו כל העלים נמצאים באותה רמה ולכל צומת פנימי או 3 בנים. דוגמאות: חומר קריאה לשיעור זה Chapter 19: B trees (381 39) Chapter 15: Augmenting data structures (81 90) cs,technion Geiger & Itai, 01 1 עצי -3 כמבני נתונים גובה עצי -3 כל עלה מכיל מפתח ורשומה (רק המפתחות נראים בציור). אינדקסים המשמשים בנים ויש בו 1 לכל צמת פנימי 3 הרשומה הנחוצה. 16 5 8 11 1 לחיפוש מספר העלים בעץ -3 מקיים 3 כאשר h הוא גובה העץ. הוכחה: עבור חסם תחתון נבחן את העץ הבינרי השלם הנוצר ע"י סילוק כל ילד שלישי מעץ -3. עבור חסם עליון נבחן את העץ הטרינרי השלם הנוצר ע"י הוספת ילד שלישי לעץ -3 בכל מקום בו חסר ילד. עץ -3 נתון עץ בו כל ילד שלישי סולק עץ בו כל ילד חסר הוסף 5 8 1 16 19 בצומת פנימי בעל שני בנים רשום אינדקס בודד - - הגדול ממש מהמפתח המקסימלי בתת העץ ששורשו הוא הבן הראשון וכן קטן או שווה למפתח המינימלי בתת העץ ששורשו הוא הבן השני. בצומת פנימי בעל שלושה בנים רשומים שני אינדקסים -. < האינדקס הראשון ) ) גדול ממש מהמפתחות בעץ הראשון וקטן שווה מהמפתחות בעץ בשני והאינדקס השני ) ) גדול ממש מהמפתחות בעץ השני וקטן שווה מהמפתחות בעץ השלישי. cs,technion 4 לפיכך הגובה מקיים.log h log כלומר: ).h = Θ(log cs,technion 3 3

חיפוש מפתח בעץ -3 הכנסת מפתח לעץ -3 יהי השורש של העץ. אם עלה, בדוק אם נמצא בצומת. החזר תשובה בהתאם. אם ) < קטן מהמפתח הראשון של :( 1. המשך את החיפוש בבן הראשון של. בהכנסת איבר לעץ -3 מבוצעות הפעולות הבאות:. חיפוש מקומו של המפתח החדש 1. הכנסת עלה למקום החדש וקביעת ערכו.. תיקון העץ כך שלכל צומת יהיו או 3 בנים. התיקון נעשה במסלול החיפוש 3. (1) פעולות. של מהעלה שנוסף ועד השורש. בכל רמה נבצע אחרת, אם ל- רק שני בנים או ש- ( < קטן מהמפתח השני של ): 1. המשך את החיפוש בבן השני של. אחרת, המשך את החיפוש בבן השלישי של...3.4.5 הקשתות המושחרות הן הקשתות בהן יורדים בעת בחיפוש. נמחיש זאת תחילה ע"י מספר דוגמאות., 0 חפש 14:, 3 14 5, 3 14 5 cs,technion 6 cs,technion 5 פרוט פעולת פיצול צומת דוגמא להכנסה לעץ -3 1 3 1,, 3 צעד ראשון:,, 3, 14 5, הכנס :,, 3 14 5, 1 3 4 1 3 4 3 14 5 3 14 5 1 3 1,, 3 3,, צעד שני: 3 צעד שלישי: 14 5, 14 5, T 1 T T 3 T 4 T 1 T T 3 T 4 3 14 5 3 14 5 cs,technion 8 cs,technion

אלגוריתם להכנסת מפתח (חלק ב) בעץ. אם נמצא, סיים. 1. חפש את. אם אינו ב-, יהי הצומת האחרון, שאינו עלה, במסלול,3, החיפוש. (לו היה ב- אזי היה אבי העלה 3 שבו נמצא). 3.,5 צור עלה 14 חדש בעל מפתח, והוסף אותו כבן,5 ל- תוך 14 שמירת הסדר בין הבנים של. (יתכן וכעת יש ל- ארבעה בנים). 3 שלושה 14 5 3 14 הוסף ל- אינדקס נוסף בהתאם לכללי עץ -3. (יתכן וכעת יש 5.4 אינדקסים)...5 6. אם ל- v ארבעה בנים, פצל את לשני צמתים,, וחבר אותם כבנים לאב של צומת תוך שמירה על סדר האינדקסים הנכון. חזור לצעד 5. אם הוא שורש, צור צומת אשר בניו הם הצמתים ו- וסיים. אם ל- שלושה בנים, סיים. אלגוריתם להכנסת מפתח (חלק א) 1. חפש את בעץ. אם נמצא, סיים.. אם אינו ב-, יהי הצומת האחרון, שאינו עלה, במסלול החיפוש. (לו היה ב- אזי היה אבי העלה שבו נמצא). 3. צור עלה חדש בעל מפתח, והוסף אותו כבן ל- תוך שמירת הסדר בין הבנים של. (יתכן וכעת יש ל- ארבעה בנים). 4. הוסף ל- אינדקס נוסף בהתאם לכללי עץ -3. (יתכן וכעת יש ל- שלושה אינדקסים). הכנס :,,, 3, 14 5,, 3 14 5, 3 14 5 3 14 5 cs,technion cs,technion 9 אלגוריתם להכנסת מפתח (במלואו) תכונות תהליך ההוספה חפש את בעץ. אם נמצא, סיים. אם אינו ב-, יהי הצומת האחרון, שאינו עלה, במסלול החיפוש. (לו היה ב- אזי היה אבי העלה שבו נמצא). צור עלה חדש בעל מפתח, והוסף אותו כבן ל- תוך שמירת הסדר בין הבנים של. (יתכן וכעת יש ל- ארבעה בנים). הוסף ל- אינדקס נוסף בהתאם לכללי עץ -3. (יתכן וכעת יש שלושה אינדקסים).. אם ל- v ארבעה בנים, פצל את לשני צמתים,, וחבר אותם כבנים לאב של צומת תוך שמירה על סדר האינדקסים הנכון. חזור לצעד 5. אם הוא שורש, צור צומת אשר בניו הם הצמתים ו- וסיים. אם ל- שלושה בנים, סיים. שינויים עולים (1), ומתבצעים רק על המסלול מהשורש לעלה שהוסף. 1. בזמן פיצול של צומת, הצמתים החדשים הם בעומק שווה לצומת שפוצל.. בפיצול השורש נוצר צומת חדש שמגדיל ב- 1 את העומק של כל הצמתים. 3. מסקנה: לאחר הוספה, כל העלים באותו עומק ולכל צומת פנימי 3- בנים...3.4.5.6 cs,technion 1 cs,technion 11

דוגמא להוצאה מעץ -3 (השאלה בלבד) הוצאת מפתח מעץ -3 סלק צומת: הוצא 14: בהוצאת איבר מעץ -3 מבוצעות הפעולות הבאות: 14 16, 19 3 15 16 19 14 16, 19 3 14 15 16 19 חיפוש מקומו של המפתח. הוצאת העלה שערכו. תיקון העץ כך שלכל צומת יהיו או 3 בנים. התיקון נעשה במסלול החיפוש של מהעלה שהוצא ועד השורש. בכל רמה נבצע (1) פעולות...3 השאל מאח: נמחיש זאת תחילה ע"י מספר דוגמאות. תיקון ערכי ההורים: 3 16 14 16, 19 15 19 3 15 16 19 3 15 16 19 cs,technion 14 cs,technion 13 פרוט פעולות תיקון בזמן הוצאה דוגמא להוצאה מעץ -3 (שני איחודים) הלוואה מאח: אחד הורים: הוצא 3:,, 14 16, 19 14 16, 19 14 15 16 19 3 14 15 16 19, איחוד הורים: סלק שורש מיותר: אחד הורים:,, 15, 15, 14 16, 19, 14 16, 19 14 15 16 19 14 15 16 19 cs,technion 16 cs,technion 15

אלגוריתם להוצאת מפתח מעץ -3 ניתוח פעולת ההוצאה נכונות: העומק של שום צומת אינו משתנה בזמן ההוצאה מלבד בסוף התהליך, במידה ומתבטל השורש, ואז העומק של כל הצמתים קטן באחד. לפיכך כל העלים נותרים בעומק שווה. כמו כן לכל צומת פנימי נותרים 3- בנים ונשמר יחס הסדר בין האינדקסים כנדרש. ניתוח זמן: כל פעולת חיפוש, הכנסה, והוצאה מעץ -3 דורשת (h) צעדי חישוב. כאשר h הוא גובה העץ, וזאת כי בכל רמה מבוצעות (1) פעולות. נזכר שעקב תכונות עץ -3 מתקיים כי ( h, = (log כאשר = הוא מספר המפתחות. סה"כ נקבל כי כל פעולה לוקחת ( log = (log צעדי חישוב. חפש את בעץ. אם לא נמצא בעץ, סיים. יהי העלה שערכו ויהי אביו. סלק את מהעץ.. אם הוא שורש ולו בן בודד, סלק את וסיים. אם ל- נותרו בנים, סיים. (המשך אם ל- נותר רק בן בודד). מקרה א (השאלה מאח): אם ל- יש אח ולו שלושה בנים, שאל בן מהאח וסיים. מקרה ב (איחוד הורים): אם לכל אח רק שני בנים, אחד את עם אח קרוב ל- ועדכן את המפתחות בצומת שנוצר. יהי ההורה של. חזור לצעד 4...3.4.5.6..8 cs,technion 18 cs,technion 1 Invariant מושג השמורה - השוואה בין עצי -3 ועצי AVL שני סוגי העצים תומכים בפעולות המילון בזמן (.(log בעץ -3 רשומות נשמרות רק בעלים. בעץ AVL רשומות נשמרות גם בצמתים פנימיים וגם בעלים. לכל שימוש בעץ -3 ישנה כנראה אנלוגיה גם בעץ AVL ולהפך. לרוב השימושים הבחירה בין השניים אינה עקרונית. מושג השמורה משמש במדעי המחשב בשביל להוכיח נכונות של קוד ושאר תכונות מועילות שלו. מעשית, זו תכונה של הנתונים שנשמרת בין פעולה לפעולה, ומניבה תועלת כלשהי. דוגמאות אותן ראינו: שמורת עץ חיפוש בינארי: כל צומת גדול מהצמתים בתת העץ השמאלי שלו וקטן מכל הצמתים בתת העץ הימני שלו. תועלת: חיפוש, הכנסה והוצאה בזמן,(h) כש- h גובה העץ. שמורת עץ :AVL לכל צומת גורם האיזון בתחום [1,0,1 ]. תועלת: ( h. = (log יחד עם שמורת עץ החיפוש הבינארי ותיקונים בזמן.(log ( אחרי הכנסה\הוצאה, מאפשר חיפוש, הכנסה והוצאה זמן (h) שמורות עץ -3: כל עלה באותה רמה, לכל צומת פנימי בין ל- 3 בנים. תועלת: חיפוש, הכנסה והוצאה ניתנים לביצוע בזמן ((log בעץ -3 (אם מעדכנים באמצעות איחוד, פיצול והלוואה מאח אחרי עדכונים). cs, Technion 0 cs,technion 19

דוגמא להכנסה לעץ מדרגה 4 (עץ -3-4) דוגמא: הכנס 5:,, 3, 14 5, 3 5 14 5 במקרה זה נדרש פיצול בודד. מחצית הצמתים (מעוגל כלפי מעלה) בענף השמאלי ומחצית (מעוגל כלפי מטה) בימני. 5,,, 3 14 5, 3 5 14 5 דוגמאות נוספות בתרגול. cs,technion הכללה - עצי (מדרגה ) הגדרה: עץ מדרגה הוא עץ המקיים את התכונות הבאות: כל הערכים נמצאים בעלים, כל העלים באותה רמה. 1. לכל צומת פנימי, פרט אולי לשורש, יש בנים כאשר. /. לשורש מספר הבנים הוא. לצומת פנימי בעל בנים יש 1 אינדקסים ממוינים לפי גודלם. 3. כל המפתחות הנמצאים בתת העץ ה- קטנים מהאינדקס ה- וגדולים או 4. 1. כל המפתחות הנמצאים בתת העץ הימני ביותר שווים לאינדקס ה- גדולים או שווים לאינדקס האחרון., דוגמא: עץ -3. דוגמא: עץ -3-4. חיפוש/הכנסה/הוצאה: כמו בעץ -3. כלומר, חיפוש לפי הגדרת עץ מדרגה, הכנסה או הוצאה של העלה המבוקש, ותיקון העץ מהעלה ועד השורש במסלול החיפוש כך,, 3, 3 14 5, 3 14 5 שמספר הבנים בכל רמה יעמוד בדרישות עץ בדרגה. cs,technion 1 עצי דרגות - מידע נוסף בעצי חיפוש בשימושים רבים של עצי חיפוש כדאי לשמור אינפורמציה נוספת בכל צומת. אינפורמציה זו משמשת להאצת פעולות נוספות הנדרשות מעצי חיפוש. למשל: הגדרה: האינדקס (rank) של מספר בקבוצה הוא מקומו בסדרה ממוינת של איברי. האינדקס של 5 בקבוצה {8,,,5} הוא. שימוש עיקרי לעץ (מסדי נתונים) בעיה I: לממש עץ חיפוש התומך, בנוסף לפעולות הכנסה\הוצאה\חיפוש, גם במציאת האינדקס של בעץ בזמן (h) כאשר h הוא גובה העץ. הזיכרון ברוב המחשבים מורכב משני חלקים: זיכרון ראשי,(RAM) קטן אך מהיר. זיכרון משני,(DISK) גדול, אך איטי יחסית לזיכרון הראשי. כאשר לא ניתן להכניס את כל מבנה הנתונים לזיכרון הראשי יש לפנות מדי פעם לזיכרון המשני לקבלת אינפורמציה נוספת. זמן הגישה לזיכרון המשני גבוה מאד יחסית לזמן הקריאה של הנתונים והקריאה נעשית בבלוקים. 1 00 בעיה :II לממש עץ חיפוש התומך בחישוב סכום האיברים בעץ הקטנים מ בזמן.(h) בבעיות אלה יש לשמור מידע נוסף בעץ החיפוש כדי שנוכל לממש את הפעולות הנוספות ביעילות הנדרשת. אנו ניראה מהו המידע שיש לשמור וכיצד להשתמש בו. אח"כ ניראה כיצד לעדכן את המידע הנוסף כך שהעץ יישאר מאוזן. cs,technion 4 1 00 1 00 עצי מדרגה גבוהה מספקים פתרון: בכל צומת פנימי נשמור כמספר הבלוקים של מפתחות שעדיין מאפשרים חיפוש מהיר בזיכרון הראשי. מספר הגישות לזיכרון המשני תלוי במספר הרמות (וזהו מספר נמוך) הנקבע ע"י גודל הבלוק. המחיר יהיה בסקירת המפתחות על מנת לקבוע את המשך החיפוש בעץ (תוך שימוש בזיכרון המהיר). cs,technion 3

עץ דרגות Tree) (Rank עץ דרגות Tree) (Rank בעיה :II לממש עץ חיפוש התומך במציאת סכום האיברים הקטנים מאיבר בזמן.(h) 0 8 פתרון: נשמור בכל צומת גם את סכום האיברים 13 5 9 בתת-העץ ששורשו. נסמן מספר זה ב-.() 6 6 3 9 60 0 15 15 5 5 יהא h מסלול החיפוש של. לכל צומת דוגמא: סכום האיברים הקטנים מ- 1 בעץ שקטן או שווה מ- ב- h נוסיף את הנ"ל הוא: ערכו של ושל כל הצמתים בתת העץ = 55 0) (15 + + 9) ( + + 13) (8 + השמאלי של. בעזרת השדה () ניתן לחשב זאת כך: =, + (. ). מסקנה: זמן הריצה הוא.(h) כיצד נבטיח זמן ריצה (?(log cs,technion 6 בעיה I: לממש עץ חיפוש התומך במציאת האינדקס של איבר. 15 פתרון: נשמור בכל צומת גם את מספר הצמתים 8 6 בתת-העץ ששורשו. נסמן מספר זה ב-.() ערך זה מופיע משמאל לצמתים באיור 5 3 יהא h מסלול החיפוש של. לכל צומת 1 1 3 1 1 1 שקטן או שווה מ- ב- h נספור את 1 1. וכל הצמתים בתת העץ השמאלי של בעזרת השדה () ניתן לחשב זאת כך: =,, + + 1 + 1 =. =, 1 + (. ). הוא עץ בו בכל צומת tree) (rank הגדרה: עץ דרגות. בתת-העץ ששורשו מסקנה: בעץ דרגות מציאת ה- rank דורשת זמן.(h) נשמרים מספר הצמתים עץ דרגות הוא דוגמא למבנה נתונים בו בכל צומת נשמר מידע על תת-העץ שמתחתיו. סוג המידע השמור תלוי בבעיה אותה יש לפתור. cs,technion 5 עדכון השדה הנוסף עץ דרגות מאוזן tree) (Balanced Rank בעיה: לממש עץ חיפוש מאוזן התומך במציאת האינדקס בזמן ).(log של איבר (rank) כיצד נעדכן את () מספר הצמתים בתת העץ בכל תת-עץ של עץ? AVL 1. בזמן הכנסה נגדיל את () ב- 1 לאורך המסלול מהשורש לעלה שהוכנס. בזמן הסרה נקטין את () ב- 1 לאורך המסלול מהשורש לצומת שהוסר. בזמן גלגול נעדכן את השדה כנדרש, תוך שימוש בעובדה ש-( ( תלוי רק בערכי () של תת העץ, שכבר תוקנו.. פתרון: לדוגמא, באמצעות עץ.AVL נשמור בכל צומת את מספר הצמתים בתת-העץ ששורשו. זיכרו שסימנו מספר זה ב-.() () למשל בגלגול נעדכן כך: + + + ( ) נדאג לעדכן את () בזמן הכנסות והסרות ובזמן גלגולים. () ( ) ( ) ( ) ( ) ( ) ( ) 1 + + cs,technion 8 cs,technion

דוגמא נוספת כיצד נעדכן את () סכום המפתחות בתת העץ בכל תת-עץ של עץ? AVL באופן דומה לאופן עדכון () בשקף הקודם - בזמן הכנסה\הסרה נעדכן את הסכום לאורך המסלול מהשורש לעלה שהוכנס\צומת שהוסר. בזמן גלגול נעדכן את השדה כנדרש. () למשל בגלגול נעדכן כך: + + + + ( ) () ( ) ( ) ( ) ( ) + ( ) ( ) + cs,technion 30 תרגיל בית: מהו העדכון בגלגולים האחרים? כיצד ניתן לתחזק שדות () ו-( ( בעץ -3? cs,technion 9